# Node Exporter配置文件
# 此文件用于配置Node Exporter的高级选项
# 注意：Node Exporter主要通过命令行参数配置，此文件用于扩展配置

# === TLS和认证配置 ===
{% if node_exporter_tls_enabled or node_exporter_basic_auth_enabled %}
# Web配置（TLS和基本认证）
tls_server_config:
{% if node_exporter_tls_enabled %}
  # TLS配置
  cert_file: "{{ node_exporter_tls_cert_file }}"
  key_file: "{{ node_exporter_tls_key_file }}"
  # 可选：客户端证书验证
  # client_auth_type: RequireAndVerifyClientCert
  # client_ca_file: "/path/to/client-ca.crt"
{% endif %}

{% if node_exporter_basic_auth_enabled %}
# 基本认证配置
basic_auth_users:
{% for user, password_hash in node_exporter_basic_auth_users.items() %}
  {{ user }}: "{{ password_hash }}"
{% endfor %}
{% endif %}
{% endif %}

# === 收集器配置 ===
# 注意：大部分收集器配置通过命令行参数设置
# 这里记录一些高级配置选项

collectors:
  # 启用的收集器
  enabled:
{% for collector in node_exporter_enabled_collectors %}
    - {{ collector }}
{% endfor %}
  
  # 禁用的收集器
  disabled:
{% for collector in node_exporter_disabled_collectors %}
    - {{ collector }}
{% endfor %}

# === 文本文件收集器配置 ===
{% if 'textfile' in node_exporter_enabled_collectors %}
textfile_collector:
  directory: "{{ node_exporter_textfile_dir }}"
  # 文本文件示例格式：
  # # HELP custom_metric_total A custom metric
  # # TYPE custom_metric_total counter
  # custom_metric_total{label="value"} 42
{% endif %}

# === 文件系统收集器配置 ===
{% if 'filesystem' in node_exporter_enabled_collectors %}
filesystem_collector:
  # 忽略的挂载点（正则表达式）
  ignored_mount_points: "{{ node_exporter_filesystem_ignored_mount_points }}"
  # 忽略的文件系统类型（正则表达式）
  ignored_fs_types: "{{ node_exporter_filesystem_ignored_fs_types }}"
{% endif %}

# === 网络设备收集器配置 ===
{% if 'netdev' in node_exporter_enabled_collectors %}
netdev_collector:
  # 忽略的网络设备（正则表达式）
  ignored_devices: "{{ node_exporter_netdev_ignored_devices }}"
{% endif %}

# === systemd收集器配置 ===
{% if 'systemd' in node_exporter_enabled_collectors %}
systemd_collector:
{% if node_exporter_systemd_unit_whitelist %}
  # 监控的systemd单元白名单（正则表达式）
  unit_whitelist: "{{ node_exporter_systemd_unit_whitelist }}"
{% endif %}
{% if node_exporter_systemd_unit_blacklist %}
  # 监控的systemd单元黑名单（正则表达式）
  unit_blacklist: "{{ node_exporter_systemd_unit_blacklist }}"
{% endif %}
{% endif %}

# === 日志配置 ===
logging:
  level: "{{ node_exporter_log_level }}"
  format: "{{ node_exporter_log_format }}"
{% if node_exporter_log_to_file %}
  file: "{{ node_exporter_log_file }}"
{% endif %}

# === 性能配置 ===
performance:
  max_requests: {{ node_exporter_max_requests }}
  timeout_offset: {{ node_exporter_timeout_offset }}

# === 健康检查配置 ===
{% if node_exporter_health_check_enabled %}
health_check:
  enabled: true
  interval: {{ node_exporter_health_check_interval }}
  timeout: {{ node_exporter_health_check_timeout }}
{% endif %}

# === 备份配置 ===
{% if node_exporter_backup_enabled %}
backup:
  enabled: true
  directory: "{{ node_exporter_backup_dir }}"
  retention_days: {{ node_exporter_backup_retention_days }}
{% endif %}

# === 自定义指标示例 ===
# 可以通过文本文件收集器添加自定义指标
# 示例文件：{{ node_exporter_textfile_dir }}/custom_metrics.prom
# 内容格式：
# # HELP node_custom_info Custom node information
# # TYPE node_custom_info gauge
# node_custom_info{version="1.0",environment="production"} 1
# 
# # HELP node_custom_uptime_seconds Custom uptime metric
# # TYPE node_custom_uptime_seconds counter
# node_custom_uptime_seconds 3600